home *** CD-ROM | disk | FTP | other *** search
/ The Guided Tour of Multimedia (Second Edition) / The Guided Tour of Multimedia (Second Edition).iso / trials / premiere / disk1 / premiere.mst < prev    next >
Text File  |  1995-03-06  |  33KB  |  994 lines

  1. '*
  2. '*            Adobe Premiere Installer
  3. '*
  4. '*
  5. '*
  6.  
  7. '$DEFINE DEBUG  ''Define for script development/debugging
  8.  
  9. '$INCLUDE 'setupapi.inc'
  10. '$INCLUDE 'msdetect.inc'
  11.  
  12.  
  13.  
  14. ''following were taken from windows.h. &H means they're hex
  15. CONST WS_VISIBLE=&H10000000
  16. CONST WS_BORDER =&H00800000
  17. CONST WS_CLIPCHILDREN =&H02000000
  18. CONST GWL_STYLE =-16
  19. CONST SW_SHOWMAXIMIZED=3
  20. CONST EW_RESTARTWINDOWS=&H00000042
  21.  
  22. '' function declarations
  23.  
  24. DECLARE FUNCTION ShowWindow  LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  25. DECLARE FUNCTION SetWindowLong LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  26. DECLARE FUNCTION ExitWindows  LIB "User" (Flag&, Param%) AS INTEGER
  27. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  28. DECLARE FUNCTION CheckForOld AS INTEGER
  29. DECLARE FUNCTION RemoveOldQTFiles (FilePath$) AS INTEGER
  30. DECLARE FUNCTION GetQTWVersion LIB "setupenu.dll" (szDLL$) AS INTEGER
  31. DECLARE FUNCTION KillATICodecs AS INTEGER
  32. DECLARE FUNCTION InstallCD(Dir$) AS INTEGER
  33.  
  34. ''Dialog ID's
  35. CONST ASKQUIT      = 100
  36. CONST NUKEOLD      = 101          ''  WARNING FOR OLDER VERSIONS
  37. CONST OLDMESS      = 102          ''  Checking for older versions of qtw
  38. CONST NUKEATI      = 103          ''  WARNING FOR ATI DRIVERS
  39. CONST DESTPATH     = 200
  40. CONST EXITFAILURE  = 300
  41. CONST EXITQUIT     = 400
  42. CONST EXITSUCCESS  = 500
  43. CONST OPTIONS      = 600
  44. CONST APPHELP      = 700
  45. CONST CUSTINST     = 800
  46. CONST TOOBIG       = 900
  47. CONST BADPATH      = 1000
  48. CONST RESTART      = 2600
  49. CONST RESTARTII    = 2700
  50.  
  51. CONST PERSONALIZE  = 10000
  52.  
  53. ''Bitmap ID
  54. CONST LOGO         = 1
  55.  
  56. ''File Types
  57.  
  58. CONST PROGRAMFILES   = 1
  59. CONST MSVIDEOFILES   = 2
  60. CONST QUICKTIMEFILES = 3
  61. CONST TUTORIALFILES  = 4
  62.  
  63. CONST   NUMGROUPS      = 4      '' Number of file groups: PROGRAM to TUTORIAL
  64.  
  65.  
  66. GLOBAL DEST$        ''Default destination directory.
  67. GLOBAL WINDRIVE$    ''Windows drive letter.
  68. GLOBAL INSTALLDLL$
  69. GLOBAL ENOUGHDISK%
  70.  
  71. rem Miscellaneous Constants
  72. rem -----------------------
  73.     CONST FILES_REMOVED = 1
  74.     CONST FILES_SKIPPED = 2
  75.  
  76. ''CustInst list symbol names
  77.  
  78. GLOBAL MinorVer%
  79.  
  80. GLOBAL WinSys32Dir$
  81. GLOBAL PROGRAMNEEDS$
  82. GLOBAL MSVIDEONEEDS$
  83. GLOBAL QUICKTIMENEEDS$
  84. GLOBAL TUTORIALNEEDS$
  85. GLOBAL QDEST$                       ''Default destination directory
  86. GLOBAL QDEST2$                       '' DEST FOR WINDOWS QTW .EXE'S
  87.  
  88. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  89. GLOBAL BIGLIST$     ''List of option files cost calc results (boolean)
  90.  
  91. ''Dialog list symbol names
  92. GLOBAL CHECKSTATES$
  93. GLOBAL STATUSTEXT$
  94. GLOBAL DRIVETEXT$
  95.  
  96. GLOBAL OnNT$
  97. GLOBAL CD%
  98.  
  99. DECLARE SUB AddOptFilesToCopyList (ftype%)
  100. DECLARE SUB RecalcOptFiles (ftype%)
  101. DECLARE SUB RecalcPath
  102. DECLARE SUB SetDriveStatus
  103. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  104. DECLARE SUB X1 LIB "mscuistf.dll" (arg$)
  105. DECLARE SUB X2 LIB "mscuistf.dll" (arg$)
  106. DECLARE SUB X3 LIB "mscuistf.dll" (arg$)
  107. DECLARE SUB FixScreenProc LIB "mscuistf.dll" (arg%)
  108. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  109. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  110. DECLARE FUNCTION IsDriveFloppy LIB "mscuistf.dll" (drive%) AS INTEGER
  111. DECLARE FUNCTION IsDriveCD LIB "mscuistf.dll" (drive%) AS INTEGER
  112.  
  113. INIT:
  114.     QDEST$           = GetWindowsSysDir
  115.     QDEST2$          = GetWindowsDir
  116.     WinSys32Dir$     = GetWindowsDir + "system32"
  117.  
  118.     ENOUGHDISK% = 1
  119.  
  120.     hWnd%=HwndFrame()
  121.     FixScreenProc ( hWnd% )
  122.     SWLxx&=SetWindowLong(hWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  123.     SWyy%=ShowWindow(hWnd%,SW_SHOWMAXIMIZED)
  124.  
  125.     INSTALLDLL$ = "mscuistf.dll"        ''custom functions
  126.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  127.  
  128.     SetBitmap INSTALLDLL$, LOGO
  129.     SetTitle "Adobe Premiere Installer"
  130.  
  131.     MajorVer% = GetWindowsMajorVersion()
  132.     MinorVer% = GetWindowsMinorVersion()
  133.  
  134.     IF  MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  135.     i% = DoMsgBox("Adobe Premiere requires Microsoft Windows version 3.10 or greater.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  136.     END
  137.     END IF
  138.  
  139.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  140.     IF OnWindowsNT() THEN
  141.       OnNT$ = "TRUE"
  142.       WowVersion$ = GetVersionOfFile(GetWindowsDir() + "system32\wowexec.exe")
  143.       IF WowVersion$ = "" THEN
  144.          i% = DoMsgBox("Adobe Premiere does not run on Windows NT 3.1.  Please upgrade your version of Windows.", "Installation Problem", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  145.          END
  146.       END IF
  147.     END IF
  148.  
  149.  
  150.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  151.     IF szInf$ = "" THEN
  152.     szInf$ = GetSymbolValue("STF_CWDDIR") + "PREMIERE.INF"
  153.     END IF
  154.     ReadInfFile szInf$
  155.  
  156.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  157.      DEST$ = GetIniKeyString( GetWindowsDir() + "premiere.ini", "Premiere", "PremiereDirectory" )
  158.     IF IsDirWritable(DEST$) = 0 THEN
  159.          DEST$ = WINDRIVE$ + ":\PREMIERE"
  160.     END IF
  161.     IF DEST$ = "" THEN
  162.          DEST$ = WINDRIVE$ + ":\PREMIERE"
  163.     END IF
  164.     IF MID$( DEST, LEN(DEST), 1 ) = "\" THEN
  165.        DEST$ = MID$( DEST, 1, LEN( DEST ) - 1 )
  166.     END IF
  167.  
  168.     ''CustInst list symbols
  169.     CHECKSTATES$ = "CheckItemsState"
  170.     STATUSTEXT$  = "StatusItemsText"
  171.     DRIVETEXT$   = "DriveStatusText"
  172.     FOR i% = 1 TO NUMGROUPS STEP 1
  173.     AddListItem CHECKSTATES$, "ON"
  174.     NEXT i%
  175.     FOR i% = 1 TO NUMGROUPS STEP 1
  176.     AddListItem STATUSTEXT$, ""
  177.     NEXT i%
  178.     FOR i% = 1 TO 7 STEP 1
  179.     AddListItem DRIVETEXT$, ""
  180.     NEXT i%
  181.     ReplaceListItem DRIVETEXT$, 7, DEST$
  182.  
  183.     ''Disk cost list symbols
  184.  
  185.     PROGRAMNEEDS$   = "ProgramNeeds"
  186.     MSVIDEONEEDS$   = "MSVideoNeeds"
  187.     QUICKTIMENEEDS$ = "QuickTimeNeeds"
  188.     TUTORIALNEEDS$  = "TutorialNeeds"
  189.  
  190.     EXTRACOSTS$ = "ExtraCosts"
  191.     BIGLIST$    = "BigList"
  192.  
  193.     FOR i% = 1 TO NUMGROUPS STEP 1
  194.     AddListItem BIGLIST$, ""
  195.     NEXT i%
  196.     FOR i% = 1 TO 26 STEP 1
  197.     AddListItem EXTRACOSTS$, "0"
  198.     NEXT i%
  199.  
  200.     RecalcPath
  201.     SetDriveStatus
  202.  
  203.  
  204. '$IFDEF DEBUG
  205.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  206. '$ENDIF ''DEBUG
  207.  
  208.  
  209. CUSTINST:
  210.     sz$ = UIStartDlg(INSTALLDLL$, CUSTINST, "FCustInstDlgProc", APPHELP, HELPPROC$)
  211.  
  212.     IF sz$ = "CONTINUE" THEN
  213.     ''Install only if it will fit.
  214.           IF ENOUGHDISK% = 0 THEN
  215.                  GOSUB TOOBIG
  216.                  GOTO CUSTINST
  217.           END IF
  218.     UIPop 1
  219.     GOTO INSTALL
  220.     ELSEIF sz$ = "PATH" THEN
  221.     GOTO GETPATH
  222.     ELSEIF sz$ = "CHK1" THEN
  223.     RecalcOptFiles PROGRAMFILES
  224.     SetDriveStatus
  225.     GOTO CUSTINST
  226.     ELSEIF sz$ = "CHK2" THEN
  227.     RecalcOptFiles MSVIDEOFILES
  228.     SetDriveStatus
  229.     GOTO CUSTINST
  230.     ELSEIF sz$ = "CHK3" THEN
  231.     RecalcOptFiles QUICKTIMEFILES
  232.     SetDriveStatus
  233.     GOTO CUSTINST
  234.     ELSEIF sz$ = "CHK4" THEN
  235.     RecalcOptFiles TUTORIALFILES
  236.     SetDriveStatus
  237.     GOTO CUSTINST
  238.     ELSEIF sz$ = "REACTIVATE" THEN
  239.     RecalcPath
  240.     SetDriveStatus
  241.     GOTO CUSTINST
  242.     ELSE
  243.     GOSUB ASKQUIT
  244.     GOTO CUSTINST
  245.     END IF
  246.  
  247.  
  248.  
  249. INSTALL:
  250.     WinDir$ = GetWindowsDir()
  251.     WinSysDir$ = GetWindowsSysDir()
  252.  
  253.     IF GetListItem( CHECKSTATES$, QUICKTIMEFILES ) = "ON" THEN
  254.         j% = CheckForOld()
  255.         ini$ = MakePath(WinDir$, "QTW.INI")
  256.         CreateIniKeyValue ini$, "QuickTime for Windows", "Implementation", "Full" , cmoOverwrite
  257.         RemoveIniKey ini$, "video", "optimize", cmoNone
  258.     END IF
  259.  
  260.     j% = KillATICodecs()
  261.  
  262.     CopyFile GetWindowsDir() + "win.ini", GetWindowsDir() + "win.prm", cmoOverwrite, 0
  263.     CopyFile GetWindowsDir() + "system.ini", GetWindowsDir() + "system.prm", cmoOverwrite, 0
  264.     CreateDir DEST$, cmoNone
  265.  
  266.     IF GetListItem( CHECKSTATES$, PROGRAMFILES ) = "ON" THEN
  267.     CreateDir DEST$ + "\PLUGINS", cmoNone
  268.     CreateDir DEST$ + "\4_PSHOP", cmoNone
  269.     CreateDir DEST$ + "\DRIVERS", cmoNone
  270.     CreateDir DEST$ + "\GOODIES", cmoNone
  271.     CreateDir DEST$ + "\GOODIES\moreplug", cmoNone
  272.     CreateDir DEST$ + "\GOODIES\morefont", cmoNone
  273.     CreateDir DEST$ + "\3D_PARTY", cmoNone
  274.     CreateDir DEST$ + "\3D_PARTY\cinetic", cmoNone
  275.     CreateDir DEST$ + "\3D_PARTY\edlaccss", cmoNone
  276.     CreateDir DEST$ + "\TITLES", cmoNone
  277. ''        CreateDir DEST$ + "\MOTION", cmoNone
  278.  
  279. ''--------------------------------------------------------------------------------------------
  280. '' hack to remove old version of the AVI importer, in case we're install over
  281. '' Premiere 1.x:
  282. '' hack to remove old version of the QTW importer, in case we're install over
  283. '' Premiere 1.x:
  284.     RemoveFile DEST$ + "\plugins\h-avi.prm", cmoForce
  285.     RemoveFile DEST$ + "\plugins\d-moov.prm", cmoForce
  286.     END IF
  287.  
  288.     IF GetListItem( CHECKSTATES$, TUTORIALFILES ) = "ON" THEN
  289.     CreateDir DEST$ + "\SAMPLES", cmoNone
  290.     END IF
  291.  
  292. ''--------------------------------------------------------------------------------------------
  293. '' force the old msrle.drv file to be removed. The SETUP program
  294. '' is unable to remove the beta version of this file, which can
  295. '' cause setup to fail.
  296.  
  297.     IF GetListItem( CHECKSTATES$, MSVIDEOFILES ) = "ON" THEN
  298.     IF (OnWindowsNT() = 0) AND (MinorVer% < 50) THEN                                                        'These files not necessary on Windows NT
  299.         RemoveFile WinSysDir$ + "msrle.drv", cmoForce
  300.     END IF
  301.     END IF
  302.  
  303.  
  304. ''--------------------------------------------------------------------------------------------
  305. '' go copy all the files...
  306.  
  307.     ClearCopyList
  308.     AddOptFilesToCopyList PROGRAMFILES
  309.     AddOptFilesToCopyList MSVIDEOFILES
  310.     AddOptFilesToCopyList QUICKTIMEFILES
  311.     AddOptFilesToCopyList TUTORIALFILES
  312.     SetRestartDir WinDir$
  313.     CopyFilesInCopyList
  314.  
  315.  
  316.     IF GetListItem(CHECKSTATES$, PROGRAMFILES) = "ON" THEN
  317.         CreateIniKeyValue "WIN.INI", "Extensions", "PPJ", DEST$ + "\PREMIERE.EXE ^.PPJ", cmoOverwrite
  318.         CreateIniKeyValue "WIN.INI", "Extensions", "PSQ", DEST$ + "\PREMIERE.EXE ^.PSQ", cmoOverwrite
  319.         CreateIniKeyValue "WIN.INI", "Extensions", "PLB", DEST$ + "\PREMIERE.EXE ^.PLB", cmoOverwrite
  320.  
  321.         RemoveFile GetWindowsDir() + "premiere.prf", cmoForce
  322.         X$ = "                                        "
  323.         X1 ( X$ )
  324.         R$ = CHR$( LEN( X$ ) ) + X$
  325.         X$ = "                                        "
  326.         X2 ( X$ )
  327.         R$ = R$ + CHR$( LEN( X$ ) ) + X$
  328.         X$ = "                                        "
  329.         X3 ( X$ )
  330.         R$ = R$ + CHR$( LEN( X$ ) ) + X$
  331.         StampResource "ProgramFiles", "1", DEST$, 6, 65, R$, LEN( R$ )
  332.  
  333.         CreateProgmanGroup "Adobe", "", cmoNone
  334.         ShowProgmanGroup  "Adobe", 1, cmoNone
  335.         CreateProgmanItem "Adobe", "Premiere 4.0 Tryout", MakePath( DEST$, "premiere.exe" ), "", cmoOverwrite
  336.         CreateProgmanItem "Adobe", "Premiere Tryout ReadMe", "write.exe " + MakePath( DEST$, "prreadme.wri" ), "", cmoOverwrite
  337.  
  338.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  339.         IF InstallCD(SrcDir$) AND OnWindowsNT() = 0 THEN
  340.             CD = 1
  341.         ELSE
  342.             CD = 0
  343.         END IF
  344.  
  345.         CDDRIVENUM% = -1
  346.         IF CD <> 0 THEN
  347.             CDDRIVENUM% = ASC(ucase$(SrcDir$)) - ASC("A")
  348.         END IF
  349.  
  350.         IF CDDRIVENUM% >= 0 THEN
  351.             CDDRIVE$ = CHR$( CDDRIVENUM% + ASC( "A" ) )
  352.             CreateProgmanItem "Adobe", "Deluxe CD", CDDRIVE$ + ":\deluxecd.exe", "deluxe.ico", cmoOverwrite
  353.         END IF
  354.  
  355.         IF DoesFileExist( GetWindowsDir() + "photoshp.ini", femRead ) <> 0 THEN
  356.             PHOTOSHOPPLUGINSDIR$ = GetIniKeyString( GetWindowsDir() + "photoshp.ini", "Photoshop", "PLUGINDIRECTORY" )
  357.             IF PHOTOSHOPPLUGINSDIR$ <> "" THEN
  358.                 CopyFile DEST$ + "\4_PSHOP\FILMST8B.8BI", PHOTOSHOPPLUGINSDIR$ + "\FILMST8B.8BI", cmoNone, 0
  359.             END IF
  360.         END IF
  361.  
  362.         CreateIniKeyValue GetWindowsDir() + "premiere.ini", "Premiere", "PremiereDirectory", DEST$, cmoOverwrite
  363.  
  364.     END IF
  365.  
  366. ''--------------------------------------------------------------------------------------------
  367. ''--------------------------------------------------------------------------------------------
  368. '' HACK FOR ATI MACH64/32 driver problem:
  369.  
  370.     IF NOT OnWindowsNT()THEN                                                        'These files not necessary on Windows NT
  371.         CreateIniKeyValue WinDir$ + "system.ini", "Macx", "DeviceBitmaps", "OFF", cmoOverwrite
  372.         CreateIniKeyValue WinDir$ + "system.ini", "Macx", "DeviceBitmap", "OFF", cmoOverwrite
  373.         CreateIniKeyValue WinDir$ + "win.ini", "Mach", "DeviceBitmaps", "OFF", cmoOverwrite
  374.         CreateIniKeyValue WinDir$ + "win.ini", "Mach", "DeviceBitmap", "OFF", cmoOverwrite
  375.     END IF
  376.  
  377. ''--------------------------------------------------------------------------------------------
  378. ''--------------------------------------------------------------------------------------------
  379.  
  380.     IF GetListItem( CHECKSTATES$, MSVIDEOFILES ) = "ON" THEN
  381.         ''Updating WIN.INI and SYSTEM.INI
  382.  
  383.  
  384.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  385.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "msrle.drv", cmoOverwrite
  386.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  387.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  388.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "ir32.dll", cmoOverwrite
  389.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21.dll", cmoOverwrite
  390.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "iyvu9.dll", cmoOverwrite
  391.  
  392.         IF (OnWindowsNT() = 0) AND (MinorVer% < 50) THEN                                                        'These files not necessary on Windows NT
  393.             IF VflatdPresent() = 0 THEN
  394.                 CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  395.             END IF
  396.  
  397.             CreateIniKeyValue "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  398.             CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  399.             CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  400.             CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  401.             CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  402.             CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  403.             CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  404.             CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  405.         END IF
  406.  
  407.         ''Do not register components not installed on NT or next version of Windows.
  408.         IF (OnWindowsNT() = 0) AND (MinorVer% < 50) THEN                                                        'These files not necessary on Windows NT
  409.             Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  410.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  411.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  412.         END IF  ''NT and next version of Windows installation stop here.
  413.  
  414.     END IF
  415.  
  416.  
  417.     IF GetListItem( CHECKSTATES$, QUICKTIMEFILES ) = "ON" THEN
  418.         CreateIniKeyValue "WIN.INI", "Extensions", "mov", MakePath(WinDir$,"player.exe") + " ^.mov", cmoOverwrite
  419.         CreateIniKeyValue "WIN.INI", "Extensions", "pic", MakePath(WinDir$,"viewer.exe") + " ^.pic", cmoOverwrite
  420.         CreateIniKeyValue "WIN.INI", "MCI Extensions", "mov", "QTWVideo", cmoOverwrite
  421.         CreateIniKeyValue "WIN.INI", "MCI Extensions", "pic", "QTWVideo", cmoOverwrite
  422.         CreateIniKeyValue "WIN.INI", "MCI Extensions", "jpg", "QTWVideo", cmoOverwrite
  423.         CreateIniKeyValue GetWindowsDir() + "system.ini", "mci", "QTWVideo", "mciqtw.drv", cmoOverwrite
  424. ''              RUN MakePath(WinSysDir$, "player.exe") + " install"
  425. ''              RUN MakePath(WinSysDir$, "viewer.exe") + " install"
  426.  
  427.     END IF
  428.  
  429.  
  430.  
  431.  
  432.  
  433. '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows
  434. '' automatically; else, it gives the user the choice
  435.     RESTRT% = RestartListEmpty ()
  436.     Exe$ = WinDir$ + "\_msrstrt.exe"
  437.     Batch$ = WinDir$ + "\_mssetup.bat"
  438.     empty$ = ""
  439.     IF OnWindowsNT() THEN
  440.         GOTO QUIT
  441.     ENDIF
  442.  
  443. RESTART:
  444.     IF RESTRT% = 0 THEN
  445.         sz$ = UIStartDlg(INSTALLDLL$, RESTART, "FInfo0DlgProc", 0, "")
  446.         IF sz$ = "REACTIVATE" THEN
  447.              GOTO RESTART
  448.         ENDIF
  449.         I% = ExitExecRestart ()
  450.         RemoveFile Exe$, cmoForce
  451.         RemoveFile Batch$, cmoForce
  452.         END
  453.     ELSE
  454.         sz$ = UIStartDlg(INSTALLDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  455.         IF sz$ = "CONTINUE" THEN
  456.             I% = ExitWindowsExec (Exe$, empty$)
  457.             IF I% = 0 THEN
  458.                 GOTO RESTART
  459.             ELSE
  460.             END
  461.         ENDIF
  462.         ELSEIF sz$ = "EXIT" THEN
  463.             UIPopAll
  464.             END
  465.         ELSEIF sz$ = "REACTIVATE" THEN
  466.             GOTO RESTART
  467.         ELSE
  468.             UIPop 1
  469.         END IF
  470.     END IF
  471.  
  472.  
  473.  
  474. QUIT:
  475.     ON ERROR GOTO ERRQUIT
  476.  
  477.     IF ERR = 0 THEN
  478.     dlg% = EXITSUCCESS
  479.     ELSEIF ERR = STFQUIT THEN
  480.     dlg% = EXITQUIT
  481.     ELSE
  482.     dlg% = EXITFAILURE
  483.     END IF
  484. QUITL1:
  485.     sz$ = UIStartDlg(INSTALLDLL$, dlg%, "FInfo0DlgProc", 0, "")
  486.     IF sz$ = "REACTIVATE" THEN
  487.     GOTO QUITL1
  488.     END IF
  489.     UIPop 1
  490.  
  491.     END
  492.  
  493. ERRQUIT:
  494.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  495.     END
  496.  
  497.  
  498.  
  499. GETPATH:
  500.     SetSymbolValue "EditTextIn", DEST$
  501.     SetSymbolValue "EditFocus", "ALL"
  502. GETPATHL1:
  503.     sz$ = UIStartDlg(INSTALLDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  504.  
  505.     IF sz$ = "CONTINUE" THEN
  506.     olddest$ = DEST$
  507.     DEST$ = GetSymbolValue("EditTextOut")
  508.  
  509.     ''Validate new path.
  510.     IF LEN( DEST ) < 4 THEN
  511.         GOSUB BADPATH
  512.         GOTO GETPATHL1
  513.     END IF
  514.  
  515. ''        IF MID$( DEST, 1, 1 ) = "A" THEN
  516. ''            GOSUB BADPATH
  517. ''            GOTO GETPATHL1
  518. ''        END IF
  519.  
  520. ''        IF MID$( DEST, 1, 1 ) = "B" THEN
  521. ''            GOSUB BADPATH
  522. ''            GOTO GETPATHL1
  523. ''        END IF
  524.  
  525.     IF IsDirWritable(DEST$) = 0 THEN
  526.         GOSUB BADPATH
  527.         GOTO GETPATHL1
  528.     END IF
  529.  
  530.           IF MID$( DEST, LEN(DEST), 1 ) = "\" THEN
  531.               DEST$ = MID$( DEST, 1, LEN( DEST ) - 1 )
  532.           END IF
  533.  
  534.     UIPop 1
  535.  
  536.     ''Truncate display if too long.
  537.     IF LEN(DEST$) > 23 THEN
  538.         ReplaceListItem DRIVETEXT$, 7, MID$(DEST$, 1, 23)+"..."
  539.     ELSE
  540.         ReplaceListItem DRIVETEXT$, 7, DEST$
  541.     END IF
  542.  
  543.     ''Recalc if path changed.
  544.     IF (olddest$ <> DEST$) AND (olddest$ <> DEST$+"\") AND (olddest$+"\" <> DEST$) THEN
  545.         RecalcPath
  546.         SetDriveStatus
  547.     END IF
  548.  
  549.     olddest$ = ""
  550.     GOTO CUSTINST
  551.     ELSEIF sz$ = "REACTIVATE" THEN
  552.     RecalcPath
  553.     SetDriveStatus
  554.     GOTO GETPATHL1
  555.     ELSEIF sz$ = "EXIT" THEN
  556.     GOSUB ASKQUIT
  557.     GOTO GETPATHL1
  558.     ELSE
  559.     UIPop 1
  560.     GOTO CUSTINST
  561.     END IF
  562.  
  563.  
  564.  
  565. TOOBIG:
  566.     sz$ = UIStartDlg(INSTALLDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  567.     IF sz$ = "REACTIVATE" THEN
  568.     RecalcPath
  569.     SetDriveStatus
  570.     GOTO TOOBIG
  571.     END IF
  572.     UIPop 1
  573.     RETURN
  574.  
  575.  
  576.  
  577. BADPATH:
  578.     sz$ = UIStartDlg(INSTALLDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  579.     IF sz$ = "REACTIVATE" THEN
  580.     RecalcPath
  581.     SetDriveStatus
  582.     GOTO BADPATH
  583.     END IF
  584.     UIPop 1
  585.     RETURN
  586.  
  587.  
  588.  
  589. ASKQUIT:
  590.     sz$ = UIStartDlg(INSTALLDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  591.  
  592.     IF sz$ = "EXIT" THEN
  593.     UIPopAll
  594.     ERROR STFQUIT
  595.     ELSEIF sz$ = "REACTIVATE" THEN
  596.     GOTO ASKQUIT
  597.     ELSE
  598.     UIPop 1
  599.     END IF
  600.     RETURN
  601.  
  602.  
  603.  
  604. '**
  605. '** Purpose:
  606. '**     Adds the specified option files to the copy list.
  607. '** Arguments:
  608. '**     ftype%  - type of files to add, one of the following:
  609. '**             PROGRAMFILES, TUTORIALFILES ...
  610. '** Returns:
  611. '**     none.
  612. '*************************************************************************
  613. SUB AddOptFilesToCopyList (ftype%) STATIC
  614.  
  615.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  616.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  617.     IF ftype% = PROGRAMFILES THEN
  618.         AddSectionFilesToCopyList "ProgramFiles", SrcDir$, DEST$
  619.         AddSectionFilesToCopyList "PluginFiles", SrcDir$, DEST$ + "\plugins"
  620.         AddSectionFilesToCopyList "ProgramWinFiles", SrcDir$, GetWindowsDir()
  621.         AddSectionFilesToCopyList "ProgramWinSysFiles", SrcDir$, GetWindowsSysDir()
  622.         AddSectionFilesToCopyList "PhotoshopFiles", SrcDir$, DEST$ + "\4_pshop"
  623.         AddSectionFilesToCopyList "MotionFiles", SrcDir$, DEST$ + "\motion"
  624.         AddSectionFilesToCopyList "TitlesFiles", SrcDir$, DEST$ + "\titles"
  625.         AddSectionFilesToCopyList "ThirdPartyFiles", SrcDir$, DEST$ + "\3d_party"
  626.         AddSectionFilesToCopyList "CineticFiles", SrcDir$, DEST$ + "\3d_party\cinetic"
  627.         AddSectionFilesToCopyList "EdlAccessFiles", SrcDir$, DEST$ + "\3d_party\edlaccss"
  628.         AddSectionFilesToCopyList "GoodiesFiles", SrcDir$, DEST$ + "\goodies"
  629.         AddSectionFilesToCopyList "MorePlugFiles", SrcDir$, DEST$ + "\goodies\moreplug"
  630.         AddSectionFilesToCopyList "MoreFontFiles", SrcDir$, DEST$ + "\goodies\morefont"
  631.         AddSectionFilesToCopyList "DriversFiles", SrcDir$, DEST$ + "\drivers"
  632.     ELSEIF ftype% = MSVIDEOFILES THEN
  633.         IF (OnWindowsNT() = 0) AND (MinorVer% < 50) THEN                                                    'These files not necessary on Windows NT
  634.         AddSectionFilesToCopyList "MSVideoFiles", SrcDir$, GetWindowsDir()
  635.         AddSectionFilesToCopyList "MSVideoSysFiles", SrcDir$, GetWindowsSysDir()
  636.         ENDIF
  637.         IF (OnWindowsNT()) THEN
  638.         AddSectionFilesToCopyList "MSVideoNTFiles", SrcDir$, WinSys32Dir$
  639.         ENDIF
  640.     ELSEIF ftype% = QUICKTIMEFILES THEN
  641.         AddSectionFilesToCopyList "QuickTimeFiles", SrcDir$, GetWindowsSysDir()
  642.         AddSectionFilesToCopyList "QuickTimeWinFiles", SrcDir$, GetWindowsDir()
  643.     ELSEIF ftype% = TUTORIALFILES THEN
  644.         AddSectionFilesToCopyList "TutorialFiles", SrcDir$, DEST$ + "\samples"
  645.     END IF
  646.     SrcDir$ = ""
  647.     END IF
  648. END SUB
  649.  
  650.  
  651. '**
  652. '** Purpose:
  653. '**     Recalculates disk space for the given option files and sets
  654. '**     the status info symbol "StatusItemsText".
  655. '** Arguments:
  656. '**     ftype% - type of files to add, one of the following:
  657. '**             PROGRAMFILES, PLUGINFILES...
  658. '** Returns:
  659. '**     none.
  660. '*************************************************************************
  661. SUB RecalcOptFiles (ftype%) STATIC
  662.     CursorSave% = ShowWaitCursor()
  663.     ClearCopyList
  664.     AddOptFilesToCopyList ftype%
  665.  
  666.     fExtra% = 0
  667.     ndrive% = 1
  668.     idrive% = 1
  669.     IF ftype% = PROGRAMFILES THEN
  670.     ListSym$ = PROGRAMNEEDS$
  671.     IF GetListItem(CHECKSTATES$, PROGRAMFILES) = "ON" THEN
  672.         ''Add extra cost to Windows drive for ini/progman, etc.
  673.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  674.         ReplaceListItem EXTRACOSTS$, ndrive%, "20000"
  675.         idrive% = ASC(ucase$(DEST$)) - ASC("A") + 1
  676.         ReplaceListItem EXTRACOSTS$, idrive%, "200000"
  677.         fExtra% = 1
  678.     END IF
  679.     ELSEIF ftype% = MSVIDEOFILES THEN
  680.     ListSym$ = MSVIDEONEEDS$
  681.     IF GetListItem(CHECKSTATES$, MSVIDEOFILES) = "ON" THEN
  682.         ''Add extra cost to Windows drive for ini/progman, etc.
  683.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  684.         ReplaceListItem EXTRACOSTS$, ndrive%, "20000"
  685.         fExtra% = 1
  686.     END IF
  687.     ELSEIF ftype% = QUICKTIMEFILES THEN
  688.     ListSym$ = QUICKTIMENEEDS$
  689.     IF GetListItem(CHECKSTATES$, QUICKTIMEFILES) = "ON" THEN
  690.         ''Add extra cost to Windows drive for ini/progman, etc.
  691.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  692.         ReplaceListItem EXTRACOSTS$, ndrive%, "20000"
  693.         fExtra% = 1
  694.     END IF
  695.     ELSEIF ftype% = TUTORIALFILES THEN
  696.     ListSym$ = TUTORIALNEEDS$
  697.     IF GetListItem(CHECKSTATES$, TUTORIALFILES) = "ON" THEN
  698.         ''Add extra cost to Windows drive for ini/progman, etc.
  699.         idrive% = ASC(ucase$(DEST$)) - ASC("A") + 1
  700.         ReplaceListItem EXTRACOSTS$, idrive%, "60000"
  701.         fExtra% = 1
  702.     END IF
  703.     END IF
  704.  
  705.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "")
  706.  
  707.     cost& = 0
  708.     FOR i% = 1 TO 26 STEP 1
  709.     cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  710.     NEXT i%
  711.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  712.  
  713.     IF StillNeed& > 0 THEN
  714.     ReplaceListItem BIGLIST$, ftype%, "YES"
  715.     ELSE
  716.     ReplaceListItem BIGLIST$, ftype%, ""
  717.     END IF
  718.  
  719.     IF fExtra% THEN
  720.     ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  721.     ReplaceListItem EXTRACOSTS$, idrive%, "0"
  722.     END IF
  723.     RestoreCursor CursorSave%
  724.     ListSym$ = ""
  725. END SUB
  726.  
  727.  
  728. '**
  729. '** Purpose:
  730. '**     Recalculates disk space and sets option status info according
  731. '**     to the current destination path.
  732. '** Arguments:
  733. '**     none.
  734. '** Returns:
  735. '**     none.
  736. '*************************************************************************
  737. SUB RecalcPath STATIC
  738.  
  739.     CursorSave% = ShowWaitCursor()
  740.  
  741.     RecalcOptFiles PROGRAMFILES
  742.     RecalcOptFiles MSVIDEOFILES
  743.     RecalcOptFiles QUICKTIMEFILES
  744.     RecalcOptFiles TUTORIALFILES
  745.  
  746.     RestoreCursor CursorSave%
  747. END SUB
  748.  
  749.  
  750. '**
  751. '** Purpose:
  752. '**     Sets drive status info according to latest disk space calcs.
  753. '** Arguments:
  754. '**     none.
  755. '** Returns:
  756. '**     none.
  757. '*************************************************************************
  758. SUB SetDriveStatus STATIC
  759.  
  760.     ENOUGHDISK% = 1
  761.  
  762.  
  763.     drive$ = MID$(DEST$, 1, 1)
  764.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  765.     cost& = VAL( GetListItem( PROGRAMNEEDS$, ndrive% ) )
  766.     cost& = cost& + VAL( GetListItem( MSVIDEONEEDS$, ndrive% ) )
  767.     cost& = cost& + VAL( GetListItem( QUICKTIMENEEDS$, ndrive% ) )
  768.     cost& = cost& + VAL( GetListItem( TUTORIALNEEDS$, ndrive% ) )
  769.     free& = GetFreeSpaceForDrive(drive$)
  770.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  771.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  772.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  773.  
  774.  
  775.     IF cost& > free& THEN
  776.       ENOUGHDISK% = 0
  777.     END IF
  778.  
  779.     IF drive$ = WINDRIVE$ THEN
  780.     ReplaceListItem DRIVETEXT$, 4, ""
  781.     ReplaceListItem DRIVETEXT$, 5, ""
  782.     ReplaceListItem DRIVETEXT$, 6, ""
  783.     ELSE
  784.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  785.     cost& = VAL( GetListItem( PROGRAMNEEDS$, ndrive% ) )
  786.     cost& = cost& + VAL( GetListItem( MSVIDEONEEDS$, ndrive% ) )
  787.     cost& = cost& + VAL( GetListItem( QUICKTIMENEEDS$, ndrive% ) )
  788.     cost& = cost& + VAL( GetListItem( TUTORIALNEEDS$, ndrive% ) )
  789.     IF cost& = 0 THEN
  790.         ReplaceListItem DRIVETEXT$, 4, ""
  791.         ReplaceListItem DRIVETEXT$, 5, ""
  792.         ReplaceListItem DRIVETEXT$, 6, ""
  793.     ELSE
  794.         free& = GetFreeSpaceForDrive(WINDRIVE$)
  795.         ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  796.         ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  797.         ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  798.     END IF
  799.  
  800.     IF cost& > free& THEN
  801.           ENOUGHDISK% = 0
  802.     END IF
  803.  
  804.     END IF
  805. END SUB
  806.  
  807.  
  808. '**
  809. '** Purpose:
  810. '**     Appends a file name to the end of a directory path,
  811. '**     inserting a backslash character as needed.
  812. '** Arguments:
  813. '**     szDir$  - full directory path (with optional ending "\")
  814. '**     szFile$ - filename to append to directory
  815. '** Returns:
  816. '**     Resulting fully qualified path name.
  817. '*************************************************************************
  818. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  819.     IF szDir$ = "" THEN
  820.     MakePath = szFile$
  821.     ELSEIF szFile$ = "" THEN
  822.     MakePath = szDir$
  823.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  824.     MakePath = szDir$ + szFile$
  825.     ELSE
  826.     MakePath = szDir$ + "\" + szFile$
  827.     END IF
  828. END FUNCTION
  829.  
  830.  
  831. rem Check for Older versions of the Quicktime For Windows components
  832. rem ---------------------------------------------------------------
  833. FUNCTION CheckForOld STATIC AS INTEGER
  834.  
  835. ''    sz$ = UIStartDlg(INSTALLDLL$, OLDMESS, "FModelessDlgProc", 0, "")
  836.  
  837. CheckForOld1:
  838.     cursor% = ShowWaitCursor()
  839.     OldFilePath$ = FindFileUsingFileOpen("qtim.dll")
  840.     RestoreCursor cursor%
  841.     IF (OldFilePath$ <> "") THEN
  842.     j% = RemoveOldQTFiles(OldFilePath$)
  843.     IF j% = FILES_REMOVED THEN
  844.         GOTO CheckForOld1
  845.  
  846.     rem If the files were not removed, there's no need to prompt
  847.     rem a second time.
  848.     ELSEIF j% = FILES_SKIPPED THEN
  849.         GOTO EndCheckForOld
  850.  
  851.     END IF
  852.     END IF
  853.  
  854. CheckForOld2:
  855.     cursor% = ShowWaitCursor()
  856.     OldFilePath$ = FindFileUsingFileOpen("qtimcmgr.dll")
  857.     RestoreCursor cursor%
  858.     IF (OldFilePath$ <> "") THEN
  859.     j% = RemoveOldQTFiles(OldFilePath$)
  860.     IF j% = FILES_REMOVED THEN
  861.         GOTO CheckForOld2
  862.     ELSEIF j% = FILES_SKIPPED THEN
  863.         GOTO EndCheckForOld
  864.     END IF
  865.     END IF
  866.  
  867. EndCheckForOld:
  868.     UIPOP 1
  869.  
  870. END FUNCTION
  871.  
  872.  
  873. FUNCTION RemoveOldQTFiles (FilePath$) STATIC AS INTEGER
  874.  
  875.     RemoveOldQTFiles = FILES_SKIPPED
  876.  
  877.     SPLITPATH FilePath$, drv$, dir$, filename$, ext$
  878.     DeadPath$ = drv$ + dir$
  879.  
  880.   rem check version resources if they exist
  881.       i% = GetQTWVersion(FilePath$)
  882.       szVersion$ = GetSymbolValue ("VersionString")
  883.     IF szVersion$ < "2.0.1.41" THEN
  884.  
  885.     rem dialog choices are Remove,Skip ("Continue","Back" buttons)
  886.     rem    SetSymbolValue "EditTextIn", "Found Version [" + szVersion$ + "] on " + DeadPath$
  887.     rem    sz$ = UIStartDlg(INSTALLDLL$, NUKEOLD, "SkipReplaceDlgProc", 0, "")
  888.     rem    UIPop 1
  889.     
  890.     
  891.     rem    IF sz$ = "BACK" THEN
  892.     rem    EXIT FUNCTION
  893.     rem    END IF
  894.     
  895.     rem     IF sz$ = "CANCEL" THEN
  896.     rem    EXIT FUNCTION
  897.     rem    END IF
  898.     
  899.     rem    IF sz$ <> "CONTINUE" THEN
  900.     rem    EXIT FUNCTION
  901.     rem    END IF
  902.     
  903.         rem all versions
  904.         RemoveFile MakePath(DeadPath$, "qtim.dll"), cmoForce
  905.         RemoveFile MakePath(DeadPath$, "qtimcmgr.dll"), cmoForce
  906.         rem version 1.0.0
  907.         RemoveFile MakePath(DeadPath$, "qcmc.dll"), cmoForce
  908.         RemoveFile MakePath(DeadPath$, "qtjpeg.dll"), cmoForce
  909.         RemoveFile MakePath(DeadPath$, "qtraw.dll"), cmoForce
  910.         RemoveFile MakePath(DeadPath$, "qtsmc.dll"), cmoForce
  911.         RemoveFile MakePath(DeadPath$, "qtrpza.dll"), cmoForce
  912.         RemoveFile MakePath(DeadPath$, "qtrle.dll"), cmoForce
  913.         RemoveFile MakePath(DeadPath$, "qtcvid.dll"), cmoForce
  914.         RemoveFile MakePath(DeadPath$, "qtrt21.dll"), cmoForce
  915.         RemoveFile MakePath(DeadPath$, "qtvhdw.dll"), cmoForce
  916.         rem version 1.1.x and later
  917.         RemoveFile MakePath(DeadPath$, "mciqtw.drv"), cmoForce
  918.         RemoveFile MakePath(DeadPath$, "qcmc.qtc"), cmoForce
  919.         RemoveFile MakePath(DeadPath$, "qtjpeg.qtc"), cmoForce
  920.         RemoveFile MakePath(DeadPath$, "qtraw.qtc"), cmoForce
  921.         RemoveFile MakePath(DeadPath$, "qtsmc.qtc"), cmoForce
  922.         RemoveFile MakePath(DeadPath$, "qtrpza.qtc"), cmoForce
  923.         RemoveFile MakePath(DeadPath$, "qtrle.qtc"), cmoForce
  924.         RemoveFile MakePath(DeadPath$, "qtcvid.qtc"), cmoForce
  925.         RemoveFile MakePath(DeadPath$, "qtrt21.qtc"), cmoForce
  926.         RemoveFile MakePath(DeadPath$, "navg.qtc"), cmoForce
  927.         RemoveFile MakePath(DeadPath$, "qtiv31.qtc"), cmoForce
  928.         rem version 1.9 and later
  929.         RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  930.         RemoveFile MakePath(DeadPath$, "qtyvu9.qtc"), cmoForce
  931.         RemoveFile MakePath(DeadPath$, "qtmsvc.qtc"), cmoForce
  932.         RemoveFile MakePath(DeadPath$, "qtiv32.qtc"), cmoForce
  933.         RemoveFile MakePath(DeadPath$, "qtiyvu9.qtc"), cmoForce
  934.         RemoveFile MakePath(DeadPath$, "qtvhdw.qtc"), cmoForce
  935.         RemoveFile MakePath(DeadPath$, "dhio_dh.qtc"), cmoForce
  936.         RemoveFile MakePath(DeadPath$, "reelmgic.qtc"), cmoForce
  937.  
  938.         rem Other miscellaneous files
  939.         RemoveFile MakePath(DeadPath$, "qtreadme.wri"), cmoForce
  940.         RemoveFile MakePath(DeadPath$, "qthndlr.dll"), cmoForce
  941.         RemoveFile MakePath(DeadPath$, "qtnotify.exe"), cmoForce
  942.         RemoveFile MakePath(DeadPath$, "qtole.dll"), cmoForce
  943.  
  944.         RemoveOldQTFiles = FILES_REMOVED
  945.     ELSE
  946.         RemoveOldQTFiles = FILES_SKIPPED
  947.     END IF
  948.  
  949. EndRemoveOldQTFiles:
  950.  
  951. END FUNCTION
  952.  
  953.  
  954. FUNCTION KillATICodecs STATIC AS INTEGER
  955.     IF NOT OnWindowsNT() THEN
  956.         check1$ = GetIniKeyString( GetWindowsDir() + "system.ini", "Drivers", "VIDC.MSVC" )
  957.         check2$ = GetIniKeyString( GetWindowsDir() + "system.ini", "Drivers", "VIDC.MRLE" )
  958.         check1$ = ucase$(check1$)
  959.         check2$ = ucase$(check2$)
  960.         IF (check1$ = "ATIVDACC.DRV") OR (check2$ = "ATIVDACC.DRV") THEN
  961.             sz$ = UIStartDlg(INSTALLDLL$, NUKEATI, "Finfo0DlgProc", 0, "")
  962.             if sz$ = "CONTINUE" THEN
  963.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.MSVC", cmoForce
  964.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.MRLE", cmoForce
  965.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.CVID", cmoForce
  966.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.IV31", cmoForce
  967.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.IV32", cmoForce
  968.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.RT21", cmoForce
  969.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.YVU9", cmoForce
  970.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "ATIVIDEO", cmoForce
  971.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.RLE", cmoForce
  972.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.ATI0", cmoForce
  973.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.DIB", cmoForce
  974.                 RemoveIniKey GetWindowsDir() + "system.ini", "Drivers", "VIDC.YV12", cmoForce
  975.                 RemoveIniSection GetWindowsDir() + "system.ini", "ATI Interceptor", cmoForce
  976.                 RemoveIniSection GetWindowsDir() + "system.ini", "Installable Compressors", cmoForce
  977.             END IF
  978.         END IF
  979.     END IF
  980.  
  981.    UIPOP 1
  982.  
  983. END FUNCTION
  984.  
  985. FUNCTION InstallCD(Dir$) STATIC AS INTEGER
  986.     CDDRIVENUM% = ASC(ucase$(Dir$)) - ASC("A")
  987.  
  988.     IF (IsDriveCD(CDDRIVENUM%) = 1) THEN
  989.         InstallCD = 1
  990.     ELSE
  991.         InstallCD = 0
  992.     ENDIF
  993. END FUNCTION
  994.